// 创建对象
let person = {
    name: 'Dcsg',
    gender: '男',
    web: 'dcsgo.com.cn'
}

// 向对象中添加新的属性
person.height = 180;
// 给对象中的属性重新赋值
person.web = 'www.dcsgo.com.cn'
console.log("person对象:", person)
// person对象: { name: 'Dcsg', gender: '男', web: 'www.dcsgo.com.cn', height: 180 }

// 删除对象中的属性
delete person.gender
console.log("person对象:", person)
// person对象: { name: 'Dcsg', web: 'www.dcsgo.com.cn', height: 180 }

// 检查对象是否包含指定属性
let hasGender = "gender" in person
console.log("person对象是否包含gender属性:", hasGender)
// person对象是否包含gender属性: false

// Object.keys() 获取对象的属性集合
let keys = Object.keys(person)
console.log("person keys:", keys)
console.log("person keys.length:", keys.length)
/*
person keys: [ 'name', 'web', 'height' ]
person keys.length: 3
*/

// Object.entries() 获取对象的属性及其属性值的数组
let arr = Object.entries(person)
console.log("person to array:", arr)
/*
person to array: [
  [ 'name', 'Dcsg' ],
  [ 'web', 'www.dcsgo.com.cn' ],
  [ 'height', 180 ]
]
*/

// 使用for...in遍历对象
// for...of用于遍历可迭代对象，如数组、字符串、Map、Set等
// for...in用于遍历对象的可枚举属性
console.log("for in person:")
for (let key in person) {
    console.log(key, ":", person[key])
}
/*
for in person:
name : Dcsg
web : www.dcsgo.com.cn
height : 180
*/

console.log("forEach person:")
// 使用forEach方法遍历对象的属性和值
Object.entries(person).forEach(([key, value]) => console.log(key, ":", value))
/*
forEach person:
name : Dcsg
web : www.dcsgo.com.cn
height : 180
*/

// 给对象重新赋值
person = {}
console.log("person:", person)
// person: {}